/*
 * Copyright 2021 The Backstage Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import { BuildTable } from '../BuildTable/BuildTable';
import React from 'react';
import { useBuildRuns } from '../../hooks';
import { useEntity } from '@backstage/plugin-catalog-react';
import { azureDevOpsPipelineReadPermission } from '@backstage-community/plugin-azure-devops-common';
import { stringifyEntityRef } from '@backstage/catalog-model';
import { RequirePermission } from '@backstage/plugin-permission-react';

export const EntityPageAzurePipelines = (props: { defaultLimit?: number }) => {
  const { entity } = useEntity();

  const { items, loading, error } = useBuildRuns(entity, props.defaultLimit);

  return (
    <RequirePermission
      permission={azureDevOpsPipelineReadPermission}
      resourceRef={stringifyEntityRef(entity)}
      errorPage={null}
    >
      <BuildTable items={items} loading={loading} error={error} />
    </RequirePermission>
  );
};
